跳到主要内容

x86 Assembly

寄存器

  • 段寄存器

    • CS 代码段
    • DS 数据段
    • SS 栈
    • ES 附加段
    • FS
    • GS
  • 通用寄存器 (GPR)

    寄存器传统用法
    EAX累加器
    EBX内存指针, 基址寄存器
    ECX循环控制, 计数器
    EDX整数乘除法
    ESI串指令的源指针, 索引寄存器
    EDI串指令的目标指针, 索引寄存器
    EBP栈指针
    ESP栈帧基址指针
  • EFLAGS

    名称符号用法
    0进位标志CF
    1
    2奇偶校验标志PF
    3
    4辅助进位标志AF
    5
    6零标志ZF
    7符号标志SF
    8陷阱标志TF
    9中断启用标志IF
    10方向标志DF
    11溢出标志OF
    12IOPL
    13IOPL
    14NT
    15
    16恢复标志RF
    17VM
    18AC
    19VIF
    20VIP
    21ID
    22~31保留
  • EIP

操作数

  • 立即数
  • 寄存器
  • 内存

内存寻址模式

addr = BaseReg + IndexReg * ScaleFactor + Disp

共八种方式

1761259187641-292472

指令集

  • 数据传输: 主要是 mov、push、pop 以及 xchg、xadd 等
  • 数据比较: cmp
  • 数据转换
  • 二进制算术: 加add、减sub、乘mul、除div、inc、dec 等
  • 逻辑运算: and、or、xor、not、test
  • 旋转和移位
  • 字节设置和二进制位串
  • 标志操纵
  • 控制转移: jmp、jcc、call、ret、loop 等
  • 其他

汇编语言和汇编器

伪指令

预处理器指令

汇编程序指令